Evolutionary content determination and management

ABSTRACT

A visual refinement interface enables users to adjust and/or refine search results by selecting results that match a user&#39;s interest, and displaying subsequent results that are closer to the selected items. Multiple result sets can be displayed concurrently such that the user can maintain context for the results. Further, the user can quickly go back to modify an earlier selection without having to navigate to a previous page, for example, and a single modification can cause several subsequent result sets to automatically change such that the user can quickly view dozens of new results, for example, simply by selecting at least one different result from a displayed result set. Prior result sets can be modified, such as by reducing the size or adjusting the placement of the sets, such that the user can easily determine the current set and the relatedness to previous results sets.

CROSS REFERENCE TO RELATED APPLICATION

This application is a Continuation of, and accordingly claims thebenefit of U.S. patent application Ser. No. 14/154,098, filed with theU.S. Patent and Trademark Office on Jan. 13, 2014, which is acontinuation of an allowed U.S. patent application Ser. No. 12/748,125,filed with the U.S. Patent and Trademark Office on Mar. 26, 2010, whichis hereby incorporated herein by reference.

BACKGROUND

As an ever-increasing amount of information is being made availableelectronically, typically over networks such as the Internet, it isincreasingly difficult to locate information or other content that is ofinterest to a user. Many conventional systems utilize search enginesthat accept keywords or other types of queries from a user, and returnresults related to the query. Oftentimes users do not enter precisequeries, which results in the set of results being over-inclusive,forcing the user to navigate through many search results before locatingthe items of interest. In other conventional systems, users are able tobrowse through information, such as by navigating through several levelsof categories or pages of electronic catalogs. The user is typicallyonly able to see one page or category at a time, which can make itdifficult or at least time consuming to navigate the various options.

Conventional approaches also can be difficult for a user when the usernavigates to a set of results or content that ends up not being ofinterest for the user. In many cases, the user must either enter a newquery, or back track a number of pages or levels to attempt to get to apoint where the user can again move in the desired direction. Such anapproach is not intuitive, and can result in a significant amount ofwasted time or frustration on the part of the user. For contentproviders who offer items for consumption, such as products offeredthrough an electronic marketplace, this frustration may prevent acustomer from quickly locating products of interest, which can result inlost sales and lesser repeat business.

BRIEF DESCRIPTION OF THE DRAWINGS

Various embodiments in accordance with the present disclosure will bedescribed with reference to the drawings, in which:

FIG. 1 illustrates an environment in which various embodiments can beimplemented;

FIGS. 2( a) and 2(b) illustrate examples of a dynamic display of contentthat can be provided in accordance with various embodiments;

FIGS. 3( a) and 3(b) illustrate examples for displaying additionalrelated content in accordance with various embodiments;

FIGS. 4( a)-4(c) illustrate examples of navigating displayed content inaccordance with various embodiments;

FIGS. 5( a)-5(b) illustrate examples of tracking content navigation inaccordance with various embodiments;

FIG. 6 illustrates an example of a selecting content to be used indetermining additional content to display in accordance with variousembodiments;

FIG. 7 illustrates an alternative example of a display of additionalcontent that can be provided in accordance with various embodiments;

FIG. 8 illustrates an example of a display of additional content, aswell as related content, that can be provided in accordance with variousembodiments;

FIG. 9 illustrates an alternative example of a display of additionalcontent that can be provided in accordance with various embodiments;

FIG. 10 illustrates an example of an interface for determiningadditional content to be displayed that can be used in accordance withvarious embodiments; and

FIG. 11 illustrates an example of a process for determining additionalcontent to be displayed that can be utilized in accordance with variousembodiments.

DETAILED DESCRIPTION

Systems and methods in accordance with various embodiments of thepresent disclosure may overcome one or more of the aforementioned andother deficiencies experienced in conventional approaches to locatingand/or providing content in an electronic environment. In particular,various embodiments provide a visual refinement interface that enables auser to refine search results simply by selecting one or more searchresults currently being displayed to the user. Any prior search resultsets may be displayed on the same screen, page, etc., as the new searchresult set, but may be altered in appearance. For example, prior searchresult sets may be reduced in size or adjusted in appearance (e.g.,having a different color, color depth, transparency, or other renderingaspect applied) to differentiate the previously-generated search resultsfrom the new search result set. By displaying the various result setsconcurrently, the user can maintain context of any prior searchrefinements and easily return to prior search results.

FIG. 1 illustrates an example of an environment 100 for implementingaspects in accordance with various embodiments. As will be appreciated,although a Web-based environment is used for purposes of explanation,different environments may be used, as appropriate, to implement variousembodiments. The environment 100 shown includes a variety of electronicclient devices 102, which can include any appropriate device operable tosend and receive requests, messages, or information over an appropriatenetwork 104 and convey information back to a user of the device.Examples of such client devices include personal computers, cell phones,handheld messaging devices, laptop computers, set-top boxes, personaldata assistants, electronic book readers, and the like. Each clientdevice can be capable of running at least one motion ororientation-controlled interface as discussed or suggested herein. Insome cases, all the functionality for the interface will be generated onthe device. In other embodiments, at least some of the functionality orcontent will be generated in response to instructions or informationreceived from over at least one network 104.

The network 104 can include any appropriate network, including anintranet, the Internet, a cellular network, a local area network, or anyother such network or combination thereof. Components used for such asystem can depend at least in part upon the type of network and/orenvironment selected. Protocols and components for communicating viasuch a network are well known and will not be discussed herein indetail. Communication over the network can be enabled by wired orwireless connections, and combinations thereof. In this example, thenetwork includes the Internet, as the environment includes a primarycontent provider 106 and a supplemental content provider 108. Eachprovider can include at least one Web server 106 for receiving requestsfrom a user device 102 and serving content in response thereto, althoughfor other networks an alternative device serving a similar purpose couldbe used as would be apparent to one of ordinary skill in the art.

Each content provider in this illustrative environment includes at leastone application server 112, 114, 122 or other such server incommunication with at least one data store 116, 118, 124. It should beunderstood that there can be several application servers, layers, and/orother elements, processes, or components, which may be chained orotherwise configured, which can interact to perform tasks such asobtaining data from an appropriate data store. As used herein the term“data store” refers to any device or combination of devices capable ofstoring, accessing, and retrieving data, which may include anycombination and number of data servers, databases, data storage devices,and data storage media, in any standard, distributed, or clusteredenvironment. An application server can include any appropriate hardwareand software for integrating with the data store as needed to executeaspects of one or more applications for the client device, handling amajority of the data access and business logic for an application. Theapplication server provides access control services in cooperation withthe data store, and is able to generate content such as text, graphics,audio, and/or video to be transferred to the user, which may be servedto the user by the Web server in the form of HTML, XML, or anotherappropriate structured language in this example. The handling of allrequests and responses, as well as the delivery of content between theclient device 102 and an application server, can be handled by therespective Web server 110, 120. It should be understood that the Web andapplication servers are not required and are merely example components,as structured code discussed herein can be executed on any appropriatedevice or host machine as discussed elsewhere herein. Further, theenvironment can be architected in such a way that a test automationframework can be provided as a service to which a user or applicationcan subscribe. A test automation framework can be provided as animplementation of any of the various testing patterns discussed herein,although various other implementations can be used as well, as discussedor suggested herein.

Each data store can include several separate data tables, databases, orother data storage mechanisms and media for storing data relating to aparticular aspect. For example, the page data store 116 illustratedincludes mechanisms for storing page data useful for generating Webpages and the user information data store 118 includes informationuseful for selecting and/or customizing the Web pages for the user. Itshould be understood that there can be many other aspects that may needto be stored in a data store, such as access right information, whichcan be stored in any of the above listed mechanisms as appropriate or inadditional mechanisms in the data store. Each data store is operable,through logic associated therewith, to receive instructions from arespective application server and obtain, update, or otherwise processdata in response thereto. In one example, a user might submit a searchrequest for a certain type of content. In this case, the data storemight access the user information to verify the identity of the user,and can access the content information to obtain information aboutinstances of that type of content. The information then can be returnedto the user, such as in a results listing on a Web page that the user isable to view via a browser on the user device 102. Information for aparticular instance of content can be viewed in a dedicated page orwindow of the browser.

Each server typically will include an operating system that providesexecutable program instructions for the general administration andoperation of that server, and typically will include a computer-readablemedium storing instructions that, when executed by a processor of theserver, allow the server to perform its intended functions. Suitableimplementations for the operating system and general functionality ofthe servers are known or commercially available, and are readilyimplemented by persons having ordinary skill in the art, particularly inlight of the disclosure herein.

The environment in one embodiment is a distributed computing environmentutilizing several computer systems and components that areinterconnected via communication links, using one or more computernetworks or direct connections. However, it will be appreciated by thoseof ordinary skill in the art that such a system could operate equallywell in a system having fewer or a greater number of components than areillustrated in FIG. 1. Thus, the depiction of the system 100 in FIG. 1should be taken as being illustrative in nature, and not limiting to thescope of the disclosure.

FIG. 2( a) illustrates an example of an interface and/or display 200that can be provided to an end user, using a system such as thatdescribed with respect to FIG. 1, in accordance with at least oneembodiment. This particular display page is shown to be rendered in abrowser or similar application, but it should be understood that thecontent can be rendered and/or presented using any appropriate approachknown or subsequently developed for such purposes. Further, variousembodiments are described with respect to offering products through anelectronic marketplace, but it should be understood that any appropriatecontent offered for display to a user can be utilized in accordance withthe various embodiments, and that such examples should not be viewed aslimitations on the claimed embodiments unless otherwise specified.

The interface 200 shown in FIG. 2( a) enables a user to search forinformation by entering one or more keywords into a search box 202 orsimilar search-related element. In conventional systems, a user wouldtypically enter a full query and then select a “submit” button orsimilar option to receive results. In other conventional systems, a usermight receive auto-complete options as the user enters keywords into thesearch box 202 that can be selected and submitted to search forinformation.

Systems in accordance with various embodiments discussed herein canprovide search results with sufficient speed and minimal latency, suchthat search results can be returned as the user enters information inthe search box 202 (e.g., in real-time). In FIG. 2( a), a user is in theprocess of entering the query “digital camera” in the search box 202.Search results 204 may be returned (e.g., displayed) to the user as theuser is typing the query. In some embodiments, search results aredisplayed as soon as the user types one or two characters into thesearch box. An active scripting language, such as JavaScript, or othersuch client-side script, can capture each character or action submittedby the user and cause an appropriate request to be generatedautomatically. By returning search results in such a manner, the user isnot required to select a “submit” button to begin a search.

FIG. 2( a) illustrates that a number of items matching the term“digital” are displayed upon the user entering the term “digital” in thesearch box. The number of items displayed in the interface can vary, andmay be dependent upon factors such as screen resolution, type of imageor content, etc. Using the example provided above where the user issearching for a digital camera, the user could stop typing in the searchbox after “digital” because the interface shown in FIG. 2( a) includes adigital camera in the set of search results based on the term “digital.”If, however, the interface 200 did not display the item the user islooking for after typing “digital,” the user can continue to type therest of the query into the search box until either the desired item isdisplayed or the user finishes the query. As should be understood, thesearch results displayed in the interface can change each time a useradds, changes, or deletes at least one character in the search box.

FIG. 2( b) shows an example subsequent state of the display 250 afterthe user has typed or otherwise entered the full query “digital camera”into the search box. As can be seen, a new set of search results 252(relative to the state of FIG. 2( a)) is displayed to the user as aresult of the additional term “camera” in the query. In this example, animage is shown for each search result, and the search results arepresented in a substantially linear fashion, although various othertypes of search result and organizational approaches can be used astaught or suggested herein. By providing the search results as an arrayof images, for example, the user can quickly select the item that theuser is looking for (or is most closely related to).

In some embodiments, the leftmost image, which is a digital camera inFIG. 2( b), is the most relevant search result for which the user issearching. In other embodiments, search results are displayed inresponse to a search query based at least in part upon the type of item,in addition to the relatedness of the item to the query. For example,the search results 252 displayed in response to the query “digitalcamera” can include different types of cameras, such as pocket cameras,SLR cameras, high resolution cameras, etc., as well as types of digitalcamera-related items, such as memory cards, camera cases, etc.Displaying camera related items would allow the user to select a cameracase instead of requiring the user to type in a full query such as“digital camera carrying case” or a similar query.

FIG. 3( a) illustrates an example of a display 300 that can be presentedto the user in response to the user selecting an item displayed in theinitial search results, here by positioning a cursor 304 (using anyappropriate technique) to select an item 302 (a digital camera) from theinitial set of search results. In this embodiment, the system utilizesthe selection of item 302 in searching for the next set of searchresults. The system can utilize any of a number of parameters,variables, categories, types, descriptions, or other such informationrelated to the selection of item 302 to further generate the next set ofsearch results. Using the digital camera example, the system, in someembodiments, displays only cameras in the next set of search results(e.g., no camera accessories). In other embodiments, however, the systemmay interpret the selection of item 302 as the user might be looking fora specific camera and/or accessories for the camera. Thus, the type ofitem selected in the first set of search results might only be onefactor among many other factors used to generate the next set of searchresults. In generating the next set of search results, the system canalso use other information associated with the selected item such asprice range or user rating. Using the example of a digital camera, therealso can be specific criteria used to generate the next set of searchresults, such as resolution, type of optics, type of flash, or othersuch aspects of a camera.

In some embodiments, the items displayed are based upon criteria oraspects of the selected item(s). For example, if a user selects acomputer with a specific processing speed and amount of memory, thesystem can search for related items with similar processing speeds andmemory specifications, etc. In some embodiments, the system can trackkeywords that are most associated with the selected item, such as may bebased on the initial keywords that eventually lead a user to view and/orpurchase that item. When a user selects an item as a filteringcriterion, for example, at least some of these tracked keywords can beadded to the search query as refinements, either on equal footing or assecondary considerations with respect to the initial search criteria. Inother embodiments, these keywords can be used to filter or refine theprevious set(s) of search results, even though only a portion of thosesearch results might have been shown. In other embodiments, the relateditems of the next result set can be pulled from other sources, such asitems that were viewed and/or purchased when other users viewed theselected item. Thus, the items submitted in a final result set might notrelate to an initial search query, or at least might not have beenpresented as search results for the initial search criteria. Variousalgorithms also can combine and/or weight information from varioussources using any of a number of criteria, such as content categories,types, etc. Further, different sources can have different confidencelevels or other indications of accuracy, which can be used to weight oradjust various considerations. In some embodiments, search results canbe selected based at least in part upon combined confidence scores. Incertain embodiments, a modified query used to generate subsequent resultsets can be displayed (or at least displayable) to the user, such thatthe user can better understand which queries are being executed, etc.Further, by being able to see the queries the user can determine whichaspects of a product are used to “refine” the search results, and canadd, adjust, or remove criteria as necessary.

FIG. 3( a) illustrates that a second set of search results 306 may bedisplayed concurrently with the first set of search results 302. In someembodiments, the second set of search results can be a subset of thefirst set of search results by running the additional criteria from theselected item against search results of the first query. In otherembodiments, each selection of an item can cause a new query to beexecuted such that each subsequent set of search results can includecontent that was not selected and/or displayed based on a previousquery. Using the example shown in FIG. 3( a), the second set of searchresults 306 displays items that are at least somewhat related to theselected item 302 of the first set of search results. For example, thesecond set of search results 306 could contain cameras that includeflash elements and/or are within a similar price range as the selecteditem 302.

The second set of search results 306 is displayed more prominently thanthe first set of search results. The items displayed in the first set ofsearch are smaller than the items displayed in the second set of searchresults 306. The first set of search results are also displayed belowthe second set of search results. As will be discussed below, variousother display and orientation options can be used and are well withinthe scope of the various embodiments. In some embodiments, the movementof the first set of search results to the lower position shown in FIG.3( a), and the resizing of each image in the first set, may be animated.Such animation can help the user to understand the progression of thesearch results. The animation can be performed using any appropriatetechnology, but in at least one embodiment is performed using JQuery toperform movements and/or adjustments as instructed by the underlyingJavaScript (or other active script) on the page.

The display 350 of FIG. 3( b) illustrates a state wherein the user hasselected an item for each of five different result sets. Display 350 inFIG. 3( b) shows that at least six search result sets have been providedto a user 352, 354, 356, 358, 360, and 362. In this embodiment, everytime a new search result set is displayed as the “primary” set, eachprior search result set is moved downward in the display 350 and theimages within the respective result set are reduced in size. In thisembodiment, the order of the search result sets are maintained.

Displaying the search result sets in this manner is advantageous for anumber of reasons. In general, displaying the search result sets in thismanner allows a user to view their search history on a single webpage.The number of search results sets that may be displayed at one time on asingle page is only limited by the size of the display screen. Theconfiguration of FIG. 3( b) is unlike a conventional system, whichtypically only displays each search result set on a separate page. Insome embodiments, the number of search result sets displayed at one timeon a single page may be limited to a certain number to preventdisplaying search result sets that would likely be too difficult for theuser to see or interpret. In other embodiments, the result sets in thecurrent search session are always displayed (e.g., down to a singlepixel in size). In some embodiments, the images in the search resultsets might only shrink to a minimum viewable size (e.g., ten pixels)after which the search result set will only shift in position on thedisplay.

A popup or modal window can be used when a user “mouses over” orotherwise interacts with an image within a search result set, such thatthe user can see an enlarged view of a reduced-size item to viewadditional information, etc. about the particular item. Concurrentlydisplaying multiple search result sets on a single page also providescontext to the many result sets including the choices that generated thecurrent search results.

Another advantage of displaying multiple result sets at the same time isthat a user can easily return to prior search result sets. For example,a user might select an item in the “primary” search result set thatgenerates a new search result set that does not include any items ofinterest to the user. In many conventional approaches, the user wouldhave to either navigate back to a previous page or submit a new query toreturn to the prior search results or obtain a new search result set.Using the example shown in FIG. 3( b), the user can readily see theprevious search result sets, and determine either which search resultset to return to, or which item to select, simply by selecting one ofthe items in the set. Upon doing so, a new search “primary” result setis generated.

FIG. 4( a) shows an example of a display 400 wherein a user has selectedan item 402 in a previous result set 356. In this embodiment, the systemcan adjust the displayed size of the newly selected result set from thereduced size in FIG. 3( b) back to a “primary” result set size toclearly indicate which row of the display is the current result set. Inthis example, the other search result sets displayed are subsequentlyreduced in size based upon their distance from the currently selectedrow 356.

In one embodiment, the change illustrated in FIG. 4( a) happens when theuser selects an item located in a previous row that was used to generatethe subsequent search results. FIG. 4( b) illustrates an example display420 that can be presented when the user selects a different result 402from a previous result set. When the user selects a different resultfrom a previous result set, all subsequent result sets can be adjustedbased at least in part upon the selection. For example, the searchresults displayed in the search result set 424 can be updated based onthe criteria of the newly selected item, and can be displayed as the“current” result set. The search results included in any subsequentresult set 426 also can be updated based upon the new selection, and canbe resized accordingly. The search results in these “subsequent” resultsets can still utilize selection criteria from the other rows or resultset selections, but can be updated to match information for the newlyselected item from a specific result set. Thus, the system can trackselections made at each level, and changing a selection at one level cancause the parameters to be adjusted only for that level, updating thesearch results for each “subsequent” result set.

FIG. 4( c) illustrates an example display 440 in accordance with anotherembodiment, wherein selection of item 422 causes all subsequent resultsets to be removed from the display, with only the new result set 424being displayed. Such an approach can simplify the interface for theuser, as the approach in FIG. 4( b) might, in some situations, causemany set of search results to be displayed that are not of interest tothe user based on the new search direction. Using the approach of FIG.4( c), the user can make a new selection from any previous result setand can resume as if the user had made that selection initially for thatresult set. In some embodiments, the user can have the option of savingthe first set of search results, as will be discussed elsewhere herein,and then going back and taking another direction to obtain a differentset of search results. Various approaches can be used, such as movingthe previous set of search results to a separate portion of the display,storing the search results as a bookmark for later retrieval, etc.

A user may view detailed information about any item within a searchresult set displayed in the page. FIG. 5( a) illustrates an exampledisplay 500 wherein selection of an item 554 in search result set by auser causes display of an information window 508. The information window508 is shown in FIG. 5( b) as a pop-up (or modal) window or panel thatprovides detailed information about the selected item and a “buy it!”box 510. The particular position of window 508 is exemplary. The window508 may be displayed in any portion of display 550. Any appropriateinformation about the selected item can be displayed in window 508, suchas a user rating, price, product information (e.g., images, video,etc.), links to related information (e.g., third party reviews, etc.),and the like. The information displayed in window 508 can be providedfrom the primary content provider or any appropriate third party.

In some embodiments, the information window 508 will appear any time theuser selects an item within a search result. In other embodiments, auser might tap once on an item within a search result set to generate asubsequent result set based on the selected item, and tap twice on theitem to view detailed information about the item itself. In otherinterfaces, a user might click once on an item to view information aboutthe item, and click twice on the item, or right click, to generate anadditional result set. In other cases, selecting an item might cause thedisplay of both information about the item and a subsequent result.

Further, the interface 500 can include at least some indication of theuser selections at each level to assist the user in understanding, or atleast remembering, the choices at each level and the reason for thesubsequent result set(s). For example, FIG. 5( a) shows a selection box502 (or similar highlighting method) highlighting the item selectedwithin each search result set. This example also illustrates a path 504between each selected item, tracing out the path between each selecteditem in each search result set. The path also can be an interactiveelement in some embodiments, wherein a user can “drag” the path 504 toinclude one or more different selections, in order to modify thesubsequent result sets. In some embodiments, the item along the pathwill stay the same at each level, and the other search results in eachset can change. In other embodiments, each result at the subsequentlevels can change, and the “selected” item along the path can update tothe item closest to the previous selection. Various other approaches canbe used as well as should be apparent.

The path (or set of selections) for a user search can be saved to a usercomputer or system database, for example. Saving a path would allow auser to later retrieve the path and result sets. The user could alsoshare the path/result sets with others, such as by sending a link to thesaved path in an email message to another user and/or posting the pathto a social networking site. In some cases, a path can also be used torecommend items to other users. For example, if a user types in a searchquery and a saved paths exists that is related to the query, the systemcan present one or more paths as options, or can suggest paths based onone or more previously saved or presented paths. In some embodiments,the system can generate suggested “subsequent” result sets based onprevious user selections or paths. These suggested sets can include anyappropriate number of rows, or other set display approaches, but in atleast some embodiments can be shown to be smaller than the currentresult set in order to distinguish the suggestions from user-generatedsearch results. Such an approach can help a user quickly locate the item(or type of item) of interest, as several sets can be generated anddisplayed based on popularity and/or other such information as may bebased on other user selections and/or paths, and the user can simplyjump directly to the item of interest.

Another advantage of storing paths (or selections) is that a user canuse a saved path to generate search result sets. If new items have beenentered into the catalog since the last time the user used the path, thenew catalog items will be displayed. For example, FIG. 5( b) illustratesthe same path 504 used in FIG. 5( a) may include new search results atone or more levels since the path was last executed. In this way, a userresearching a type of product might store a path that highlights theaspects most important to that user, and the user can check theavailable items periodically to see new or similar items. In thisexample, it can be seen that there are a couple of items 552 that werenot displayed in the previous result sets for the same path. Further,the selected item is updated to the newer version of the selected item,although certain embodiments might not change the actual userselection(s).

In another example, the user might store a path for accessories for acertain item. For example, the user might enter a search query for agaming console, and select the console that the user owns. The usermight select related items that correspond to accessories and/or games,including specific types of games at different result levels. A usercould store this path, and come back at a subsequent time to see newitems at each level that satisfy those criteria. For example, a resultset might include action/adventure games for that console, particularlythat are similar to games that the user as selected, and the user cancome back periodically to check for new games that match the user'sinterest.

In some cases, there might be multiple items of interest to the userwithin a search result set. FIG. 6 illustrates an example interface 600wherein a user has selected multiple items within each search resultset. In this example, each selected item is surrounded by a rectangle602, although any appropriate mechanism for indicating such a selectioncan be used as well, such as highlighting, increasing image size,animating, etc. When a user selects more than one item in a result set,the system can combine the attributes from the selected items togenerate the subsequent result set.

FIG. 6 also illustrates that the user can also exclude items from aresult set. Excluded items are shown in FIG. 6 as items covered by animage 604 consisting of a circle with a line there through (althoughother approaches can be used), indicating that the item was excludedfrom the search. While some embodiments might remove excluded items froma search result set, displaying excluded items in a result set can helpthe user easily identify items marked not of interest, and make changesas appropriate (e.g., remove the exclusion sign if the user laterdecides the item is of interest). When generating result sets, thesystem can attempt to determine features of the excluded item(s) thatare different from the selected item(s), and adjust the query thatgenerates the next search result set appropriately. Users can select toinclude or exclude items by making different selection actions, such asany of those discussed or suggested herein or known in the art. Asdiscussed above with respect to paths, the inclusion or exclusion ofcertain items from result sets can be saved for later retrieval and/oruse.

The result sets may be displayed in other formats than those shown inFIGS. 3-6. For example, FIG. 7 illustrates an interface 700 thatdisplays vertically oriented search result sets 702, 704, 706, 708.Using the FIG. 7 example, search result set 708 is the “primary” orcurrent search result set and search results sets 702, 704, 706 arepreviously generated search result sets. Search result set 702 is theoldest prior search result set that is still viewable on display 700 andsearch result set 706 is the second most recently generated searchresult set. In the FIG. 7 example, product information is displayedalong with each image (e.g., image 710 is the Snap EZ camera and sellsfor $179.99).

Similar to the display 600 shown in FIG. 6, the sets of search resultimages shown in FIG. 7 decrease in size as the search result set becomesless relevant to the current search results set. FIG. 7 furtherillustrates that each search result set may not include the same numberof images within the set. For example, each search result set 702-706,when it was the current search result set, may have initially displayedonly the top five products in its set due to space restrictions of thedisplay 700. However, as the search result set moved from the currentset to a previously-generated set (e.g., to the left in display 700),which causes the size of each image in the set to decrease, the numberof top products displayed in the search result set can increaseaccordingly. In the FIG. 7 example, the search result set 702 nowdisplays ten products compared to initially displaying only five whenset 702 was the current set (e.g., as being displayed by set 708). Suchan approach can increase the total number of products displayedconcurrently in the display screen 700, and can assist the user inquickly locating information of interest.

FIG. 8 illustrates a display 800 that presents search results sets ofproducts in a first area of display 800 and search result sets ofaccessories related to the products displayed in the search result setsin a second area of the display 800. In the FIG. 8 example, searchresult sets of products are displayed horizontally in rows in the firstarea and search result sets of accessories are displayed vertically inthe second area. For example, the most recently generated search resultset of products (the top row in the first area) includes a number ofsimilar digital cameras and the most recent search result set ofaccessories (the left-most column in the second area) displaysaccessories that relate to items in the most recently generated searchresult set.

In some embodiments, selecting a specific item in a result set can alsocause the displayed accessories to update. In this example, selecting aspecific item 806 in the most recent result set can cause theaccessories in the corresponding column to update such that theaccessories likely match, correspond to, or work with the selected item.The information window 804 can be configured to display multipleselected items, such that a user can select related items (such as adigital camera and a memory card that works with the camera) directlyfrom the displayed search results, and can purchase the items directlyfrom the information window 804. Such display can be advantageous inother areas, such as clothing, where a user can put together and look atpotential outfit combinations, such as a shirt with a pair of pants,shoes that match particular shirts, etc., before making a purchase.

In some embodiments, the secondary area can be used to show alternateviews of a selected item in a corresponding result set. For example, ifa user selects a digital camera then the secondary area can be used toshow alternate views of the camera (e.g., front and back) and can showother images or information as well, such as sample images capturesusing that camera. If multiple cameras are selected in different rows,for example, the user can compare the quality of images in differentcolumns taken with those different cameras. Such functionality is notreadily available with conventional search interfaces.

In some embodiments, the secondary area can instead be used to display aseparate array of result sets, such as may have been generated in aprevious search. The user can compare various items from the differentsearches. For example, a user looking for televisions could do onesearch for plasma televisions and one search for LCD televisions, andcould cause the result sets to be displayed concurrently such that theuser can compare items from both searches. In some embodiments, the usercan display at least a portion of any number of previous search results,etc.

FIG. 9 illustrates another example approach 900 that can be used inaccordance with various embodiments. In this example, each result set ispresented on a virtual “wheel” 902 that can be rotated right or left (inthe figure) to view items from the result set and select an item to useto generate the next result set, such as by placing the selected item atthe center-front position of the wheel (with respect to the view of thedisplay). Such an approach can be advantageous at least for the reasonthat a user can quickly navigate through more search results at eachlevel than would be possible due to the limited space on the page, andcan adjust search results in an intuitive fashion by spinning the wheelsat any level and seeing how the search results for subsequent setschange. As should be apparent from the present disclosure, and of anumber of other display approaches can be used within the scope of thevarious embodiments.

In various embodiments discussed above, the initial set of searchresults was generated in response to a search query. As mentioned,however, the initial set of search results, or the starting point fromwhich subsequent result sets are generated, can be determined using anyof a number of other such approaches. For example, a user can navigateto a specific category or set of information using conventionalapproaches, such as hyperlinks or other content navigation elements.FIG. 10 illustrates an example interface 1000 that includes an itemcontainer 1006, in this online retail example referred to as a “personalshopper,” where a user can add or select items to be used in generatingthe result sets. In this interface, a user can navigate to specificcategories or pages of information that are displayed in a particularpanel, frame, or other section 1002 of the page. Items or other contentcan be displayed in that section 1002, and a user can select or“drag-and-drop” those items into the container 1006 to be used as astarting point for the search. The page can include instructions 1004that indicate to the user how to place items 1008 in the container 1006.The container can refer not only to a section of the page that displaysselected items, but also to memory or storage space where informationidentifying the selected content is stored, such as a row in a temporarytable, etc. While a user can select items from one or more sections ofthe page, it should be apparent that a user could also drag-and-drop,(or copy-and-paste, etc.) items from separate windows or displays ontothe container in various moments. Various other selection elements canbe used as well.

Each time a user adds, removes, or changes an item 1008 in the container1006, a set of search results 1010 can be generated and/or updated. Thesearch results displayed can be set-based search results, such as aredescribed elsewhere herein. In this example, however, a user does notstart with a query composed of keywords, for example, but insteadselects items of interest and causes the system to automatically searchfor items or content related to the item(s) in the container. In thisexample, a user could navigate to a camera page, and drop into thecontainer two cameras of interest to the user. The system could thenutilize these cameras to attempt to locate related items, and cangenerate a first set of search results in response thereto. The userthen can utilize the result sets as discussed above, such as to use therows of images to refine the search results until one or more items ofinterest are located, etc. As in other embodiments, the selections inthe container (and any selection for corresponding result sets) can bestored for later retrieval by the user, such as to view new relateditems, send to other users, etc.

In some embodiments, a user might add items to the container that theuser has purchased, such as a television and a receiver. Using such anapproach, the user can instantly receive hundreds of recommendations foraccessories or other items that persons owning those items have alsopurchased. This not only provides a quick way for a user to determinecompatible accessories, for example, but also provides a level ofquality as these items were likely the most-purchased or mosthighly-rated type of each accessory. Such an approach allows a user torely upon the research and knowledge of others when viewing information.

As mentioned, the selections made by users interested in specific itemsalso can be tracked and used to recommend items to other users. Theselection information also can be sold to retailers or productmanufacturers, for example, to determine features that user desire,which related items are of interest, which items users viewing a productend up purchasing, etc. This information can be product-specific and notinclude any personally-identifiable information. In some embodiments, auser can opt-in or opt-out of such information gathering and analysis.

FIG. 11 illustrates an example process 1100 for generating searchresults in accordance with one embodiment. It should be understood thatthere can be additional, fewer, or alternative steps performed insimilar or differing orders, or in parallel, within the scope of thevarious embodiments. In this example, initial criteria are determinedthat will be used to search for information 1102. As discussed, theinitial criteria can be determined in any of a number of ways, such asreceiving a search query from the user, receiving a selection of itemsfrom the user, analyzing the contents of a container, etc. Based atleast in part upon the initial search criteria, an initial set of searchresults can be generated and caused to be displayed to the user 1104. Insome embodiments, this comprises a client device (or server incommunication with a client device) generating and submitting a searchrequest to a search server that is operable to utilize at least onesearch index to locate content related to the parameters of the searchrequest. The search results then can be conveyed back to the clientdevice for display using any approach discussed or suggested herein.

After the initial set of search results is displayed to the user, aselection of at least one of the items of the initial set by the user isreceived 1106. In response to the selection, information about theselected item can be displayed, such as in an information window orsimilar location 1108. Further, a new result set can be generated basedat least in part upon the initial search criteria and one or moreaspects of each selected item 1110. The new result set can be displayedalong with at least a portion of any prior result sets 1112, with theprior result sets being shifted in position and/or decreased in size1114 to indicate that those sets are no longer the current set. Variousother approaches for providing such indications can be used as well, andthe actions can be done in any order or concurrently in variousembodiments.

At any appropriate time after the display sets are generated anddisplayed, a user selection action can be indicated and/or received1116. A determination can be made as to whether the selection action isan “end action” or a selection action intended to refine or update thedisplayed search results 1118. If the action is an end action, such asan action to follow a link to a page about an item or to purchase anitem, then the user can be enabled to perform that desired action withrespect to the selected item(s) 1120. If the selection action is insteada selection action to refine search results, such as to generate a newresult set or update an existing set, the information about the selecteditem(s) can be displayed and/or updated 1108, the new set of searchresults can be generated 1110 and displayed 1112, the other result setscan be shifted or resized as necessary 1114, and the process cancontinue. Various other actions can occur as well in variousembodiments, such as loading, saving, or modifying selection paths;starting new search result sets for comparison; and various other suchfunctionality.

The initial criteria discussed above can include information in additionto product or query information, etc. For example, preferenceinformation can be stored for a user that indicates specific attributesthat are of interest, or not of interest, for a user. For example, auser might have indicated that the user will not purchase items with arating lower than two stars out of four, or some other such criterion. Auser also could specify information such as preferred manufacturers,retailers not to purchase from, etc. Any such information could beutilized as search criteria to select search results to display to theuser.

Various other information can be used as well. For example, a user'sviewing and/or purchase history can be used to select search results. Ifa user always looks at a certain manufacturer, or never buys anythingwith a particular feature or aspect, then those types of information canbe factored in as well. If a user has a wish list or items saved in ashopping cart, aspects of those items can also be indicative ofpreferences of the user, and information about those aspects can beconsidered during the search. Various other types of information, suchas geographic information, demographic information, etc., can be used toselect items that might be most appropriate for the user. For example, auser shopping for cameras in Alaska might receive search results thatare also resistant to low temperatures, while a user in Hawaii mightinstead receive search results that are waterproof, etc. Further, a userwho always buys expensive or designer items, or always buys only thelatest items, can potentially receive different selections from userswho typically wait to buy an item until the item is on sale or hasdropped in price. If a user's size is known and the user is searchingfor clothing, then search results could be filtered based on items thatare available in the user's size. Various other aspects can be used aswell as should be apparent to one of ordinary skill in the art in lightof the teachings and suggestions contained herein.

Such an interface also can be used for various other reasons, such as toprovide other types of recommendations to a user. For example, a userbrowsing movies might add to a container a set of movies that the userenjoys. Based on information such as movies that other users watched orpurchased based on those selections, the system can generate a resultset of related movies. If a user selects a specific movie of thegenerated result set, such as a horror movie, the user can get asubsequent set of search results relating primarily to horror movies (orat least movies that appeal to fans of that particular horror movie). Ifa user instead wants to watch a romance movie, the user can change aselection at any appropriate level to a romance movie, and any or all ofthe subsequent search results can update automatically in response tothe change. Such an approach can advantageously allow a user to viewhundreds of movie recommendations just by changing one or two selectionoptions. A user also can return to the suggestions periodically, as newrecommendations can appear over time based on the user's selections,preferences, etc.

A visual interface for navigating content also can be usedadvantageously for other types of content, such as images. For example,a user might be looking for a picture of a Tuscan villa for a schoolproject. Using conventional search techniques, a user might enter asearch query such as “Tuscan villa.” Such an approach typically reliesupon the name the user gave the image, or context of the page whichcontains the image. Often, the image will be named something that onlymeans something to the user, such as “Joes place,” or will have adefault name given by the camera, such as “DXP002353.jpg.” Neither nameis helpful in guiding the user to that result via a text-based search.Using an interface as described herein, however, a user can attempt tonavigate to a desired image based on related images. For example, theuser might still type in the query “Tuscan villa.” The user might getback images, of Italian food, villas outside Tuscany, etc. The user canselect the image that is closest to the desired image, such as an imageof an Italian castle. Based on aspects of the image, such as context,coloring, brightness, associated text, user viewing history, linkedimages, or any of a number of other such factors, another set of imagesearch results can be generated that likely is closer to the user'sinterest, such as may include a number of Italian castles and villas.The user can continue to select images that are closer to the desiredimage until the user finds an image of interest. Using conventionalkeyword searching, the user might never have located the desired image,as the context or other attributes of the image might not be apparent tothe user.

As discussed above, the various embodiments can be implemented in a widevariety of operating environments, which in some cases can include oneor more user computers, computing devices, or processing devices whichcan be used to operate any of a number of applications. User or clientdevices can include any of a number of general purpose personalcomputers, such as desktop or laptop computers running a standardoperating system, as well as cellular, wireless, and handheld devicesrunning mobile software and capable of supporting a number of networkingand messaging protocols. Such a system also can include a number ofworkstations running any of a variety of commercially-availableoperating systems and other known applications for purposes such asdevelopment and database management. These devices also can includeother electronic devices, such as dummy terminals, thin-clients, gamingsystems, and other devices capable of communicating via a network.

Various aspects also can be implemented as part of at least one serviceor Web service, such as may be part of a service-oriented architecture.Services such as Web services can communicate using any appropriate typeof messaging, such as by using messages in extensible markup language(XML) format and exchanged using an appropriate protocol such as SOAP(derived from the “Simple Object Access Protocol”). Processes providedor executed by such services can be written in any appropriate language,such as the Web Services Description Language (WSDL). Using a languagesuch as WSDL allows for functionality such as the automated generationof client-side code in various SOAP frameworks.

Most embodiments utilize at least one network that would be familiar tothose skilled in the art for supporting communications using any of avariety of commercially-available protocols, such as TCP/IP, OSI, FTP,UPnP, NFS, CIFS, and AppleTalk. The network can be, for example, a localarea network, a wide-area network, a virtual private network, theInternet, an intranet, an extranet, a public switched telephone network,an infrared network, a wireless network, and any combination thereof.

In embodiments utilizing a Web server, the Web server can run any of avariety of server or mid-tier applications, including HTTP servers, FTPservers, CGI servers, data servers, Java servers, and businessapplication servers. The server(s) also may be capable of executingprograms or scripts in response requests from user devices, such as byexecuting one or more Web applications that may be implemented as one ormore scripts or programs written in any programming language, such asJava®, C, C# or C++, or any scripting language, such as Perl, Python, orTCL, as well as combinations thereof. The server(s) may also includedatabase servers, including without limitation those commerciallyavailable from Oracle®, Microsoft®, Sybase®, and IBM®.

The environment can include a variety of data stores and other memoryand storage media as discussed above. These can reside in a variety oflocations, such as on a storage medium local to (and/or resident in) oneor more of the computers or remote from any or all of the computersacross the network. In a particular set of embodiments, the informationmay reside in a storage-area network (“SAN”) familiar to those skilledin the art. Similarly, any necessary files for performing the functionsattributed to the computers, servers, or other network devices may bestored locally and/or remotely, as appropriate. Where a system includescomputerized devices, each such device can include hardware elementsthat may be electrically coupled via a bus, the elements including, forexample, at least one central processing unit (CPU), at least one inputdevice (e.g., a mouse, keyboard, controller, touch screen, or keypad),and at least one output device (e.g., a display device, printer, orspeaker). Such a system may also include one or more storage devices,such as disk drives, optical storage devices, and solid-state storagedevices such as random access memory (“RAM”) or read-only memory(“ROM”), as well as removable media devices, memory cards, flash cards,etc.

Such devices also can include a computer-readable storage media reader,a communications device (e.g., a modem, a network card (wireless orwired), an infrared communication device, etc.), and working memory asdescribed above. The computer-readable storage media reader can beconnected with, or configured to receive, a computer-readable storagemedium, representing remote, local, fixed, and/or removable storagedevices as well as storage media for temporarily and/or more permanentlycontaining, storing, transmitting, and retrieving computer-readableinformation. The system and various devices also typically will includea number of software applications, modules, services, or other elementslocated within at least one working memory device, including anoperating system and application programs, such as a client applicationor Web browser. It should be appreciated that alternate embodiments mayhave numerous variations from that described above. For example,customized hardware might also be used and/or particular elements mightbe implemented in hardware, software (including portable software, suchas applets), or both. Further, connection to other computing devicessuch as network input/output devices may be employed.

Storage media and computer readable media for containing code, orportions of code, can include any appropriate media known or used in theart, including storage media and communication media, such as but notlimited to volatile and non-volatile, removable and non-removable mediaimplemented in any method or technology for storage and/or transmissionof information such as computer readable instructions, data structures,program modules, or other data, including RAM, ROM, EEPROM, flash memoryor other memory technology, CD-ROM, digital versatile disk (DVD) orother optical storage, magnetic cassettes, magnetic tape, magnetic diskstorage or other magnetic storage devices, or any other medium which canbe used to store the desired information and which can be accessed bythe a system device. Based on the disclosure and teachings providedherein, a person of ordinary skill in the art will appreciate other waysand/or methods to implement the various embodiments.

The specification and drawings are, accordingly, to be regarded in anillustrative rather than a restrictive sense. It will, however, beevident that various modifications and changes may be made thereuntowithout departing from the broader spirit and scope of the invention asset forth in the claims.

What is claimed is:
 1. A computing system, comprising: at least oneprocessor; and a memory device including instructions that, whenexecuted by the at least one processor, cause the computing system to:receive a search query from a user device; cause a first set of searchresult images to be displayed on the user device, the first set ofsearch result images matching the search query; receive a firstselection of a first search result image of the first set of searchresult images; determine, based at least in part on the first selection,a second set of search result images, the second set of search resultimages being displayed more prominently than, and concurrently with, thefirst set of search result images; receive a second selection of asecond search result image of the first set of search result images; anddisplay, using an animated motion, the first set of search result imagesmore prominently than the second set of search result images.
 2. Thecomputing system of claim 1, wherein each search result image of thefirst set of search result images and the second set of search resultimages corresponds to an item offered for consumption by an electronicmarketplace.
 3. The computing system of claim 1, wherein the second setof search result images is based at least in part upon a product relatedto at least one search result image in the first set of search resultimages.
 4. The computing system of claim 1, wherein the search queryincludes at least one keyword or information corresponding to itemsadded to a container, and wherein the first set of search result imagesare displayed more prominently by adjusting at least one of a size orposition, color, color depth, transparency, or rendering of each imageof the first set of search result images.
 5. The computing system ofclaim 1, wherein the second set of search result images corresponds atleast in part to one of items purchased or viewed by other users viewingthe first search result image or items with similar attributes to thefirst search result image.
 6. The computing system of claim 1, whereinthe instructions when executed further cause the processor to: receiveinformation associated with a selection of multiple search results fromthe first set of search result images and the second set of searchresult images; and cause, based at least in part upon information forthe first set of search result images and the second set of searchresult images, subsequently-generated search result image sets to bedisplayed.
 7. The computing system of claim 1, wherein the instructionswhen executed further cause the processor to: receive informationassociated with an exclusion of at least one search result image fromthe first set of search result images and the second set of searchresult images; and cause subsequently-generated set of search resultimages, based at least in part upon information for each excluded searchresult, to be displayed.
 8. The computing system of claim 1, wherein theinstructions when executed further cause the processor to: display agraphical path indicating an order of selected search result images fromat least the first set of search result images and the second set ofsearch result images; and store information of the graphical path. 9.The computing system of claim 8, wherein the instructions when executedfurther cause the processor to: recommend search result images inresponse to requests based at least upon the stored information.
 10. Acomputer-implemented method, comprising: receiving a search query from auser device; causing a first set of search result images to be displayedon the user device, the first set of search result images matching thesearch query; receiving a first selection of a first search result imageof the first set of search result images; determining, based at least inpart on the first selection, a second set of search result images, thesecond set of search result images being displayed more prominentlythan, and concurrently with, the first set of search result images;receiving a second selection of a second search result image of thefirst set of search result images; and displaying, using an animatedmotion, the first set of search result images more prominently than thesecond set of search result images.
 11. The computer-implemented methodof claim 10, wherein each search result image of the first set of searchresult images and the second set of search result images corresponds toan item offered for consumption by an electronic marketplace, andwherein the second set of search result images is based at least in partupon a product related to at least one search result image in the firstset of search result images.
 12. The computer-implemented method ofclaim 10, further comprising: receiving information associated with aselection of multiple search results from the first set of search resultimages and the second set of search result images; and causing, based atleast in part upon information for the first set of search result imagesand the second set of search result images, subsequently-generatedsearch result image sets to be displayed.
 13. The computer-implementedmethod of claim 10, further comprising: receiving information associatedwith an exclusion of at least one search result image from the first setof search result images and the second set of search result images; andcausing subsequently-generated set of search result images, based atleast in part upon information for each excluded search result, to bedisplayed.
 14. The computer-implemented method of claim 10, furthercomprising: displaying a graphical path indicating a selected searchresult image from the first set of search result images and the secondset of search result images; and storing information of the graphicalpath.
 15. The computer-implemented method of claim 14, furthercomprising: recommending search result images in response to requestsbased at least upon the stored information.
 16. The computer-implementedmethod of claim 10, wherein the search query includes at least onekeyword or information corresponding to items added to a container, andwherein the first set of search result images are displayed moreprominently by adjusting at least one of a size or position, color,color depth, transparency, or rendering of each image of the first setof search result images.
 17. A non-transitory computer readable storagemedium storing one or more sequences of instructions executable by oneor more processors to perform a set of operations comprising: receivinga search query from a user device; causing a first set of search resultimages to be displayed on the user device, the first set of searchresult images matching the search query; receiving a first selection ofa first search result image of the first set of search result images;determining, based at least in part on the first selection, a second setof search result images, the second set of search result images beingdisplayed more prominently than, and concurrently with, the first set ofsearch result images; receiving a second selection of a second searchresult image of the first set of search result images; and displaying,using an animated motion, the first set of search result images moreprominently than the second set of search result images.
 18. Thenon-transitory computer readable storage medium of claim 17, furthercomprising instructions executed by the one or more processors toperform the set of operations of: receiving information associated witha selection of multiple search results from the first set of searchresult images and the second set of search result images; and causing,based at least in part upon information for the first set of searchresult images and the second set of search result images,subsequently-generated search result sets to be displayed.
 19. Thenon-transitory computer readable storage medium of claim 17, furthercomprising instructions executed by the one or more processors toperform the set of operations of: receiving information associated withan exclusion of at least one search result image from the first set ofsearch result images and the second set of search result images; andcausing a subsequently-generated set of search results, based at leastin part upon information for each excluded search result, to bedisplayed.
 20. The non-transitory computer readable storage medium ofclaim 17, further comprising instructions executed by the one or moreprocessors to perform the set of operations of: displaying a graphicalpath indicating a selected search result image from the first set ofsearch result images and the second set of search result images; andstoring information of the graphical path.